Page({
  data: {
    activeTab: 0,
    tabs: ['全部', '待付款', '待发货', '待收货', '待评价'],
    orders: [],
    userId: 1107,  // 固定用户ID为1107
    baseUrl: 'https://127.0.0.1:9205'  // 修改为HTTPS
  },

  onLoad: function() {
    // 添加网络请求域名检查
    wx.setBackgroundFetchToken({
      token: 'order-fetch'
    });
    
    this.loadOrders();
  },

  onShow: function() {
    this.loadOrders();
  },

  // 切换标签
  onTabChange: function(e) {
    const index = e.currentTarget.dataset.index;
    this.setData({
      activeTab: index
    });
    this.loadOrders();
  },

  // 加载订单数据
  loadOrders: function() {
    const tab = this.data.activeTab;
    let url = '';
    
    switch(tab) {
      case 0:
        url = `${this.data.baseUrl}/order/selectAll`;
        break;
      case 1:
        url = `${this.data.baseUrl}/order/selectStatus1`;
        break;
      case 2:
        url = `${this.data.baseUrl}/order/selectStatus2`;
        break;
      case 3:
        url = `${this.data.baseUrl}/order/selectStatus3`;
        break;
      case 4:
        url = `${this.data.baseUrl}/order/selectStatus4`;
        break;
    }

    // 开发环境下允许非HTTPS请求
    if (!wx.getSystemInfoSync().platform.includes('devtools')) {
      url = url.replace('http:', 'https:');
    }

    console.log('开始请求订单数据...');
    console.log('请求URL:', url);
    console.log('请求参数:', { nid: 1107 });

    // 添加请求前检查
    wx.request({
      url: url,
      method: 'GET',
      data: {
        nid: 1107
      },
      enableHttp2: true,  // 启用HTTP2
      enableQuic: true,   // 启用QUIC
      enableCache: true,  // 启用缓存
      header: {
        'content-type': 'application/json',
        'Accept': 'application/json'
      },
      success: (res) => {
        console.log('收到服务器响应:', res);
        
        if (res.statusCode === 200) {
          try {
            // 检查返回的数据结构
            console.log('返回的原始数据:', res.data);
            
            let orders = Array.isArray(res.data) ? res.data : [];
            if (!Array.isArray(res.data)) {
              console.warn('服务器返回的数据不是数组格式:', res.data);
            }
            
            console.log('转换后的订单数组:', orders);
            
            // 处理订单数据
            orders = orders.map(order => {
              try {
                console.log('处理订单数据:', order);
                return {
                  ...order,
                  statusText: this.getStatusText(order.status),
                  date: this.formatDate(order.date),
                  doDate: this.formatDate(order.doDate)
                };
              } catch (err) {
                console.error('处理单个订单数据时出错:', err);
                return order;
              }
            });

            this.setData({
              orders: orders
            });

            console.log('最终设置的订单数据:', orders);

            if (orders.length === 0) {
              console.log('没有找到订单数据');
              wx.showToast({
                title: '暂无订单数据',
                icon: 'none',
                duration: 2000
              });
            } else {
              console.log('成功加载到', orders.length, '条订单数据');
            }
          } catch (err) {
            console.error('处理响应数据时出错:', err);
            wx.showToast({
              title: '数据处理失败',
              icon: 'none',
              duration: 2000
            });
          }
        } else {
          console.error('请求失败，状态码:', res.statusCode, '响应数据:', res.data);
          wx.showToast({
            title: '加载订单失败',
            icon: 'none',
            duration: 2000
          });
        }
      },
      fail: (err) => {
        console.error('请求发生错误:', err);
        // 检查具体错误类型
        if (err.errMsg.includes('request:fail')) {
          wx.showToast({
            title: '网络连接失败',
            icon: 'none',
            duration: 2000
          });
        } else {
          wx.showToast({
            title: '请求失败: ' + err.errMsg,
            icon: 'none',
            duration: 2000
          });
        }
      },
      complete: () => {
        console.log('请求完成');
      }
    });
  },

  // 获取状态文本
  getStatusText: function(status) {
    switch (status) {
      case 0:
        return '已取消';
      case 1:
        return '待付款';
      case 2:
        return '待发货';
      case 3:
        return '待收货';
      case 4:
        return '待评价';
      default:
        return '未知状态';
    }
  },

  // 查看订单详情
  viewOrderDetail: function(e) {
    const orderId = e.currentTarget.dataset.id;
    console.log('查看订单详情:', orderId);
    wx.navigateTo({
      url: '/pages/order/detail/index?id=' + orderId
    });
  },

  // 去支付
  goPay: function(e) {
    const order = e.currentTarget.dataset.order;
    console.log('去支付订单:', order);
    wx.navigateTo({
      url: '/pages/order/payment/index?orderId=' + order.oid + '&amount=' + order.price
    });
  },

  // 确认收货
  confirmReceive: function(e) {
    const orderId = e.currentTarget.dataset.id;
    wx.showModal({
      title: '确认收货',
      content: '确认已收到服务吗？',
      success: (res) => {
        if (res.confirm) {
          // TODO: 调用确认收货接口
          wx.showToast({
            title: '确认收货成功',
            icon: 'success'
          });
          this.loadOrders();
        }
      }
    });
  },

  // 去评价
  goRate: function(e) {
    const orderId = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: '/pages/comment/comment?orderId=' + orderId
    });
  },

  // 格式化日期
  formatDate: function(dateStr) {
    if (!dateStr) return '暂无';
    const date = new Date(dateStr);
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hour = date.getHours().toString().padStart(2, '0');
    const minute = date.getMinutes().toString().padStart(2, '0');
    return `${year}-${month}-${day} ${hour}:${minute}`;
  }
}); 